package ruletaPage;

import java.util.List;

import jugador.Jugador;

import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.util.time.Duration;

import applications.RuletaApplication;
import apuesta.Apuesta;

import Ruleta.Mesa;

public class ApuestasEnMesaPanel extends Panel{
	
	public ApuestasEnMesaPanel(String id){
	super(id);
	IModel<List<Apuesta>> model = new AbstractReadOnlyModel<List<Apuesta>>() {

		@Override
		public List<Apuesta> getObject() {
			return RuletaApplication.getInstance().getMesa().getApuestasActuales();
			
		}
	};
	
	ListView<Apuesta> apuestasEnMesa = new ListView<Apuesta>("apuestasEnMesa",model) {
		@Override
		protected void populateItem(ListItem<Apuesta> item) {
			item.setModel(new CompoundPropertyModel<Apuesta>( item.getModelObject()));
			item.add(new Label("tipo"));
			item.add(new Label("numero"));
			item.add(new Label("cantidad"));
			item.add(new Label("apostador",new PropertyModel<Jugador>(item.getModelObject().getApostador(), "nombre")));
			
		}
		};
    //encapsulate the ListView in a WebMarkupContainer in order for it to update
    WebMarkupContainer listContainer = new WebMarkupContainer("container");
    //generate a markup-id so the contents can be updated through an AJAX call
    listContainer.setOutputMarkupId(true);
    listContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(1)));
    // add the list view to the container
    listContainer.add(apuestasEnMesa);
    // finally add the container to the page
    add(listContainer);
	}
}
	

